<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Eigen: Eigen::QuaternionBase&lt; Derived &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen</a>
   &#160;<span id="projectnumber">3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classEigen_1_1QuaternionBase.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classEigen_1_1QuaternionBase-members.html">List of all members</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Eigen::QuaternionBase&lt; Derived &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__Geometry__chapter.html">Geometry</a> &raquo; <a class="el" href="group__Geometry__Reference.html">Reference</a> &raquo; <a class="el" href="group__Geometry__Module.html">Geometry module</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class Derived&gt;<br />
class Eigen::QuaternionBase&lt; Derived &gt;</h3>

<p>Base class for quaternion expressions. </p>
<p>This is defined in the Geometry module.</p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;Eigen/Geometry&gt;</span> </div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Derived</td><td>derived type (CRTP) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>class <a class="el" href="classEigen_1_1Quaternion.html" title="The quaternion class used to represent 3D orientations and rotations.">Quaternion</a> </dd></dl>
</div><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Eigen::QuaternionBase&lt; Derived &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classEigen_1_1QuaternionBase__inherit__graph.png" border="0" usemap="#aEigen_1_1QuaternionBase_3_01Derived_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="aEigen_1_1QuaternionBase_3_01Derived_01_4_inherit__map" id="aEigen_1_1QuaternionBase_3_01Derived_01_4_inherit__map">
<area shape="rect" title="Base class for quaternion expressions." alt="" coords="5,277,161,531"/>
<area shape="rect" href="classEigen_1_1RotationBase.html" title=" " alt="" coords="12,5,155,229"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aed266c63b10a4028304901d9c8614199"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classEigen_1_1AngleAxis.html">AngleAxis</a>&lt; Scalar &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#aed266c63b10a4028304901d9c8614199">AngleAxisType</a></td></tr>
<tr class="separator:aed266c63b10a4028304901d9c8614199"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3972e6cb0f56cccbe9e3946a7e494f8"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classEigen_1_1Matrix.html">Matrix</a>&lt; Scalar, 3, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#ac3972e6cb0f56cccbe9e3946a7e494f8">Matrix3</a></td></tr>
<tr class="separator:ac3972e6cb0f56cccbe9e3946a7e494f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a974c0529d55983b0b3a6d99a8466f331"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classEigen_1_1Matrix.html">Matrix</a>&lt; Scalar, 3, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a974c0529d55983b0b3a6d99a8466f331">Vector3</a></td></tr>
<tr class="separator:a974c0529d55983b0b3a6d99a8466f331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classEigen_1_1RotationBase"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classEigen_1_1RotationBase')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classEigen_1_1RotationBase.html">Eigen::RotationBase&lt; Derived, 3 &gt;</a></td></tr>
<tr class="memitem:a2208f5cae3e61336a9fedb4b8ad37d60 inherit pub_types_classEigen_1_1RotationBase"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classEigen_1_1Matrix.html">Matrix</a>&lt; <a class="el" href="classEigen_1_1RotationBase.html#a942f03c9a5bfbad71a313aee8d37887e">Scalar</a>, Dim, Dim &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1RotationBase.html#a2208f5cae3e61336a9fedb4b8ad37d60">RotationMatrixType</a></td></tr>
<tr class="separator:a2208f5cae3e61336a9fedb4b8ad37d60 inherit pub_types_classEigen_1_1RotationBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a942f03c9a5bfbad71a313aee8d37887e inherit pub_types_classEigen_1_1RotationBase"><td class="memItemLeft" align="right" valign="top">typedef internal::traits&lt; Derived &gt;::<a class="el" href="classEigen_1_1RotationBase.html#a942f03c9a5bfbad71a313aee8d37887e">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1RotationBase.html#a942f03c9a5bfbad71a313aee8d37887e">Scalar</a></td></tr>
<tr class="separator:a942f03c9a5bfbad71a313aee8d37887e inherit pub_types_classEigen_1_1RotationBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aabef1f6fc62535f6f85d590108915ee8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1QuaternionBase.html#a974c0529d55983b0b3a6d99a8466f331">Vector3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#aabef1f6fc62535f6f85d590108915ee8">_transformVector</a> (const <a class="el" href="classEigen_1_1QuaternionBase.html#a974c0529d55983b0b3a6d99a8466f331">Vector3</a> &amp;v) const</td></tr>
<tr class="separator:aabef1f6fc62535f6f85d590108915ee8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74f13d7c853484996494c26c633ae02a"><td class="memTemplParams" colspan="2">template&lt;class OtherDerived &gt; </td></tr>
<tr class="memitem:a74f13d7c853484996494c26c633ae02a"><td class="memTemplItemLeft" align="right" valign="top">internal::traits&lt; Derived &gt;::Scalar&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a74f13d7c853484996494c26c633ae02a">angularDistance</a> (const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;other) const</td></tr>
<tr class="separator:a74f13d7c853484996494c26c633ae02a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a951d627764be63ca1e8c2c4c7315e43f"><td class="memTemplParams" colspan="2">template&lt;typename NewScalarType &gt; </td></tr>
<tr class="memitem:a951d627764be63ca1e8c2c4c7315e43f"><td class="memTemplItemLeft" align="right" valign="top">internal::cast_return_type&lt; Derived, <a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt; NewScalarType &gt; &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a951d627764be63ca1e8c2c4c7315e43f">cast</a> () const</td></tr>
<tr class="separator:a951d627764be63ca1e8c2c4c7315e43f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae61294790c0cc308d3f69690a657672c"><td class="memItemLeft" align="right" valign="top">internal::traits&lt; Derived &gt;::Coefficients &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#ae61294790c0cc308d3f69690a657672c">coeffs</a> ()</td></tr>
<tr class="separator:ae61294790c0cc308d3f69690a657672c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a193e79f616335a0067e3e784c7cf85fa"><td class="memItemLeft" align="right" valign="top">const internal::traits&lt; Derived &gt;::Coefficients &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a193e79f616335a0067e3e784c7cf85fa">coeffs</a> () const</td></tr>
<tr class="separator:a193e79f616335a0067e3e784c7cf85fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e63b775d0a93161ce6137ec0a17f6b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt; Scalar &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a5e63b775d0a93161ce6137ec0a17f6b0">conjugate</a> () const</td></tr>
<tr class="separator:a5e63b775d0a93161ce6137ec0a17f6b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2d22c5b321c9539dd625ca415422236"><td class="memTemplParams" colspan="2">template&lt;class OtherDerived &gt; </td></tr>
<tr class="memitem:aa2d22c5b321c9539dd625ca415422236"><td class="memTemplItemLeft" align="right" valign="top">Scalar&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#aa2d22c5b321c9539dd625ca415422236">dot</a> (const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;other) const</td></tr>
<tr class="separator:aa2d22c5b321c9539dd625ca415422236"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab12ee41b3b06adc3062217a795a6a9f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt; Scalar &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#ab12ee41b3b06adc3062217a795a6a9f5">inverse</a> () const</td></tr>
<tr class="separator:ab12ee41b3b06adc3062217a795a6a9f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64bc41c96a9e99567e0f8409f8f0f680"><td class="memTemplParams" colspan="2">template&lt;class OtherDerived &gt; </td></tr>
<tr class="memitem:a64bc41c96a9e99567e0f8409f8f0f680"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a64bc41c96a9e99567e0f8409f8f0f680">isApprox</a> (const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;other, const RealScalar &amp;prec=<a class="el" href="structEigen_1_1NumTraits.html">NumTraits</a>&lt; Scalar &gt;::dummy_precision()) const</td></tr>
<tr class="separator:a64bc41c96a9e99567e0f8409f8f0f680"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad4b1faef1eabdc7fdd4d305e9881149"><td class="memItemLeft" align="right" valign="top">Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#aad4b1faef1eabdc7fdd4d305e9881149">norm</a> () const</td></tr>
<tr class="separator:aad4b1faef1eabdc7fdd4d305e9881149"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a487a8a129b46be562f42044102c1f8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a7a487a8a129b46be562f42044102c1f8">normalize</a> ()</td></tr>
<tr class="separator:a7a487a8a129b46be562f42044102c1f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade799f18b7ec19c02ddae3a4921fa8a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt; Scalar &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#ade799f18b7ec19c02ddae3a4921fa8a0">normalized</a> () const</td></tr>
<tr class="separator:ade799f18b7ec19c02ddae3a4921fa8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a530edf22f03853cd07ba829ea0d505dc"><td class="memTemplParams" colspan="2">template&lt;class OtherDerived &gt; </td></tr>
<tr class="memitem:a530edf22f03853cd07ba829ea0d505dc"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a530edf22f03853cd07ba829ea0d505dc">operator!=</a> (const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;other) const</td></tr>
<tr class="separator:a530edf22f03853cd07ba829ea0d505dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdf1dc395c1cff6716ec9b80fd15b414"><td class="memTemplParams" colspan="2">template&lt;class OtherDerived &gt; </td></tr>
<tr class="memitem:afdf1dc395c1cff6716ec9b80fd15b414"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt; typename internal::traits&lt; Derived &gt;::Scalar &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#afdf1dc395c1cff6716ec9b80fd15b414">operator*</a> (const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;other) const</td></tr>
<tr class="separator:afdf1dc395c1cff6716ec9b80fd15b414"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd8ee6b6420fbdd22fab7cd016212441"><td class="memTemplParams" colspan="2">template&lt;class OtherDerived &gt; </td></tr>
<tr class="memitem:afd8ee6b6420fbdd22fab7cd016212441"><td class="memTemplItemLeft" align="right" valign="top">Derived &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#afd8ee6b6420fbdd22fab7cd016212441">operator*=</a> (const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;q)</td></tr>
<tr class="separator:afd8ee6b6420fbdd22fab7cd016212441"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7c114c6e62a37d4fc53b6e82ed78eac"><td class="memItemLeft" align="right" valign="top">Derived &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#aa7c114c6e62a37d4fc53b6e82ed78eac">operator=</a> (const <a class="el" href="classEigen_1_1QuaternionBase.html#aed266c63b10a4028304901d9c8614199">AngleAxisType</a> &amp;aa)</td></tr>
<tr class="separator:aa7c114c6e62a37d4fc53b6e82ed78eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20a6702c9da3fc2950178d920d0aaf84"><td class="memTemplParams" colspan="2">template&lt;class MatrixDerived &gt; </td></tr>
<tr class="memitem:a20a6702c9da3fc2950178d920d0aaf84"><td class="memTemplItemLeft" align="right" valign="top">Derived &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a20a6702c9da3fc2950178d920d0aaf84">operator=</a> (const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; MatrixDerived &gt; &amp;xpr)</td></tr>
<tr class="separator:a20a6702c9da3fc2950178d920d0aaf84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad206c9014409c06970884dbfc00e6c3c"><td class="memTemplParams" colspan="2">template&lt;class OtherDerived &gt; </td></tr>
<tr class="memitem:ad206c9014409c06970884dbfc00e6c3c"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#ad206c9014409c06970884dbfc00e6c3c">operator==</a> (const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;other) const</td></tr>
<tr class="separator:ad206c9014409c06970884dbfc00e6c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ae84bfbcc9f3f19f10294496a836bee"><td class="memTemplParams" colspan="2">template&lt;typename Derived1 , typename Derived2 &gt; </td></tr>
<tr class="memitem:a7ae84bfbcc9f3f19f10294496a836bee"><td class="memTemplItemLeft" align="right" valign="top">Derived &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a7ae84bfbcc9f3f19f10294496a836bee">setFromTwoVectors</a> (const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; Derived1 &gt; &amp;a, const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; Derived2 &gt; &amp;b)</td></tr>
<tr class="separator:a7ae84bfbcc9f3f19f10294496a836bee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4695b0f6eebfb217ae2fbd579ceda24a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a4695b0f6eebfb217ae2fbd579ceda24a">setIdentity</a> ()</td></tr>
<tr class="separator:a4695b0f6eebfb217ae2fbd579ceda24a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac840bde67d22f2deca330561c65d144e"><td class="memTemplParams" colspan="2">template&lt;class OtherDerived &gt; </td></tr>
<tr class="memitem:ac840bde67d22f2deca330561c65d144e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt; typename internal::traits&lt; Derived &gt;::Scalar &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#ac840bde67d22f2deca330561c65d144e">slerp</a> (const Scalar &amp;t, const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;other) const</td></tr>
<tr class="separator:ac840bde67d22f2deca330561c65d144e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09730db4ef0b546f5cf29f6b180b3c87"><td class="memItemLeft" align="right" valign="top">Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a09730db4ef0b546f5cf29f6b180b3c87">squaredNorm</a> () const</td></tr>
<tr class="separator:a09730db4ef0b546f5cf29f6b180b3c87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cf07ab9875baba2eecdd62ff93bfc3f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1QuaternionBase.html#ac3972e6cb0f56cccbe9e3946a7e494f8">Matrix3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a8cf07ab9875baba2eecdd62ff93bfc3f">toRotationMatrix</a> () const</td></tr>
<tr class="separator:a8cf07ab9875baba2eecdd62ff93bfc3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91f93bde88f52796cfcd92c3594f39e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1VectorBlock.html">VectorBlock</a>&lt; Coefficients, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a91f93bde88f52796cfcd92c3594f39e5">vec</a> ()</td></tr>
<tr class="separator:a91f93bde88f52796cfcd92c3594f39e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada8bdb403471df23511bdc0f227962ea"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classEigen_1_1VectorBlock.html">VectorBlock</a>&lt; const Coefficients, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#ada8bdb403471df23511bdc0f227962ea">vec</a> () const</td></tr>
<tr class="separator:ada8bdb403471df23511bdc0f227962ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad884cf20a0b0b92bb63ab3fe9d6d6b7f"><td class="memItemLeft" align="right" valign="top">NonConstCoeffReturnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#ad884cf20a0b0b92bb63ab3fe9d6d6b7f">w</a> ()</td></tr>
<tr class="separator:ad884cf20a0b0b92bb63ab3fe9d6d6b7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5eae91bedac0afaab0074cec5e535bc"><td class="memItemLeft" align="right" valign="top">CoeffReturnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#ab5eae91bedac0afaab0074cec5e535bc">w</a> () const</td></tr>
<tr class="separator:ab5eae91bedac0afaab0074cec5e535bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b05bac2a1c099b341396f725e85f3b1"><td class="memItemLeft" align="right" valign="top">NonConstCoeffReturnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a8b05bac2a1c099b341396f725e85f3b1">x</a> ()</td></tr>
<tr class="separator:a8b05bac2a1c099b341396f725e85f3b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdd8e260d5de861a6136cb9e6ceaa4b4"><td class="memItemLeft" align="right" valign="top">CoeffReturnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#afdd8e260d5de861a6136cb9e6ceaa4b4">x</a> () const</td></tr>
<tr class="separator:afdd8e260d5de861a6136cb9e6ceaa4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6005245a72520df258d30af6b5448595"><td class="memItemLeft" align="right" valign="top">NonConstCoeffReturnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a6005245a72520df258d30af6b5448595">y</a> ()</td></tr>
<tr class="separator:a6005245a72520df258d30af6b5448595"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad37efca5d9fde3f4cb03a208f38d74f"><td class="memItemLeft" align="right" valign="top">CoeffReturnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#aad37efca5d9fde3f4cb03a208f38d74f">y</a> () const</td></tr>
<tr class="separator:aad37efca5d9fde3f4cb03a208f38d74f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9afed6a7fa4fcdfbe599d7b5b207fc1b"><td class="memItemLeft" align="right" valign="top">NonConstCoeffReturnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a9afed6a7fa4fcdfbe599d7b5b207fc1b">z</a> ()</td></tr>
<tr class="separator:a9afed6a7fa4fcdfbe599d7b5b207fc1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8389b65a61aa3fc76d3ba4bd4a63e529"><td class="memItemLeft" align="right" valign="top">CoeffReturnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a8389b65a61aa3fc76d3ba4bd4a63e529">z</a> () const</td></tr>
<tr class="separator:a8389b65a61aa3fc76d3ba4bd4a63e529"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classEigen_1_1RotationBase"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classEigen_1_1RotationBase')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classEigen_1_1RotationBase.html">Eigen::RotationBase&lt; Derived, 3 &gt;</a></td></tr>
<tr class="memitem:a17e1494056ac5d1fb4d00d8488b6a0a7 inherit pub_methods_classEigen_1_1RotationBase"><td class="memItemLeft" align="right" valign="top">Derived&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1RotationBase.html#a17e1494056ac5d1fb4d00d8488b6a0a7">inverse</a> () const</td></tr>
<tr class="separator:a17e1494056ac5d1fb4d00d8488b6a0a7 inherit pub_methods_classEigen_1_1RotationBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09a6df8b4801f4ec56823695c1116633 inherit pub_methods_classEigen_1_1RotationBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1RotationBase.html#a2208f5cae3e61336a9fedb4b8ad37d60">RotationMatrixType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1RotationBase.html#a09a6df8b4801f4ec56823695c1116633">matrix</a> () const</td></tr>
<tr class="separator:a09a6df8b4801f4ec56823695c1116633 inherit pub_methods_classEigen_1_1RotationBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad553de027676bded14bbed5623dbdb72 inherit pub_methods_classEigen_1_1RotationBase"><td class="memItemLeft" align="right" valign="top">internal::rotation_base_generic_product_selector&lt; Derived, OtherDerived, OtherDerived::IsVectorAtCompileTime &gt;::ReturnType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1RotationBase.html#ad553de027676bded14bbed5623dbdb72">operator*</a> (const <a class="el" href="structEigen_1_1EigenBase.html">EigenBase</a>&lt; OtherDerived &gt; &amp;e) const</td></tr>
<tr class="separator:ad553de027676bded14bbed5623dbdb72 inherit pub_methods_classEigen_1_1RotationBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1258d0d2205a25d75f17ac947b28ef77 inherit pub_methods_classEigen_1_1RotationBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Transform.html">Transform</a>&lt; <a class="el" href="classEigen_1_1RotationBase.html#a942f03c9a5bfbad71a313aee8d37887e">Scalar</a>, Dim, Mode &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1RotationBase.html#a1258d0d2205a25d75f17ac947b28ef77">operator*</a> (const <a class="el" href="classEigen_1_1Transform.html">Transform</a>&lt; <a class="el" href="classEigen_1_1RotationBase.html#a942f03c9a5bfbad71a313aee8d37887e">Scalar</a>, Dim, Mode, Options &gt; &amp;t) const</td></tr>
<tr class="separator:a1258d0d2205a25d75f17ac947b28ef77 inherit pub_methods_classEigen_1_1RotationBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefdff51f6a7f7a50ce2610afc98836a6 inherit pub_methods_classEigen_1_1RotationBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Transform.html">Transform</a>&lt; <a class="el" href="classEigen_1_1RotationBase.html#a942f03c9a5bfbad71a313aee8d37887e">Scalar</a>, Dim, Isometry &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1RotationBase.html#aefdff51f6a7f7a50ce2610afc98836a6">operator*</a> (const <a class="el" href="classEigen_1_1Translation.html">Translation</a>&lt; <a class="el" href="classEigen_1_1RotationBase.html#a942f03c9a5bfbad71a313aee8d37887e">Scalar</a>, Dim &gt; &amp;t) const</td></tr>
<tr class="separator:aefdff51f6a7f7a50ce2610afc98836a6 inherit pub_methods_classEigen_1_1RotationBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c6e897778ebf8c4d5fd48ab2361f81f inherit pub_methods_classEigen_1_1RotationBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1RotationBase.html#a2208f5cae3e61336a9fedb4b8ad37d60">RotationMatrixType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1RotationBase.html#a7c6e897778ebf8c4d5fd48ab2361f81f">operator*</a> (const <a class="el" href="classEigen_1_1UniformScaling.html">UniformScaling</a>&lt; <a class="el" href="classEigen_1_1RotationBase.html#a942f03c9a5bfbad71a313aee8d37887e">Scalar</a> &gt; &amp;s) const</td></tr>
<tr class="separator:a7c6e897778ebf8c4d5fd48ab2361f81f inherit pub_methods_classEigen_1_1RotationBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac69c68d9a256dd0d369b0f32c2b654e1 inherit pub_methods_classEigen_1_1RotationBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1RotationBase.html#a2208f5cae3e61336a9fedb4b8ad37d60">RotationMatrixType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1RotationBase.html#ac69c68d9a256dd0d369b0f32c2b654e1">toRotationMatrix</a> () const</td></tr>
<tr class="separator:ac69c68d9a256dd0d369b0f32c2b654e1 inherit pub_methods_classEigen_1_1RotationBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a6f31a6f98016f186515b3277f4757962"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt; Scalar &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1QuaternionBase.html#a6f31a6f98016f186515b3277f4757962">Identity</a> ()</td></tr>
<tr class="separator:a6f31a6f98016f186515b3277f4757962"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Typedef Documentation</h2>
<a id="aed266c63b10a4028304901d9c8614199"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed266c63b10a4028304901d9c8614199">&#9670;&nbsp;</a></span>AngleAxisType</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classEigen_1_1AngleAxis.html">AngleAxis</a>&lt;Scalar&gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::<a class="el" href="classEigen_1_1QuaternionBase.html#aed266c63b10a4028304901d9c8614199">AngleAxisType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the equivalent angle-axis type </p>

</div>
</div>
<a id="ac3972e6cb0f56cccbe9e3946a7e494f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3972e6cb0f56cccbe9e3946a7e494f8">&#9670;&nbsp;</a></span>Matrix3</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classEigen_1_1Matrix.html">Matrix</a>&lt;Scalar,3,3&gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::<a class="el" href="classEigen_1_1QuaternionBase.html#ac3972e6cb0f56cccbe9e3946a7e494f8">Matrix3</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the equivalent rotation matrix type </p>

</div>
</div>
<a id="a974c0529d55983b0b3a6d99a8466f331"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a974c0529d55983b0b3a6d99a8466f331">&#9670;&nbsp;</a></span>Vector3</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classEigen_1_1Matrix.html">Matrix</a>&lt;Scalar,3,1&gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::<a class="el" href="classEigen_1_1QuaternionBase.html#a974c0529d55983b0b3a6d99a8466f331">Vector3</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the type of a 3D vector </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aabef1f6fc62535f6f85d590108915ee8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabef1f6fc62535f6f85d590108915ee8">&#9670;&nbsp;</a></span>_transformVector()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; Derived &gt;::<a class="el" href="classEigen_1_1QuaternionBase.html#a974c0529d55983b0b3a6d99a8466f331">Vector3</a> <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::_transformVector </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html#a974c0529d55983b0b3a6d99a8466f331">Vector3</a> &amp;&#160;</td>
          <td class="paramname"><em>v</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>return the result vector of <em>v</em> through the rotation</p>
<p>Rotation of a vector by a quaternion. </p><dl class="section remark"><dt>Remarks</dt><dd>If the quaternion is used to rotate several points (&gt;1) then it is much more efficient to first convert it to a 3x3 <a class="el" href="classEigen_1_1Matrix.html" title="The matrix class, also used for vectors and row-vectors.">Matrix</a>. Comparison of the operation cost for n transformations:<ul>
<li>Quaternion2: 30n</li>
<li>Via a Matrix3: 24 + 15n </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a74f13d7c853484996494c26c633ae02a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74f13d7c853484996494c26c633ae02a">&#9670;&nbsp;</a></span>angularDistance()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;class OtherDerived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">internal::traits&lt;Derived&gt;::Scalar <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::angularDistance </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the angle (in radian) between two rotations </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1QuaternionBase.html#aa2d22c5b321c9539dd625ca415422236">dot()</a> </dd></dl>

</div>
</div>
<a id="a951d627764be63ca1e8c2c4c7315e43f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a951d627764be63ca1e8c2c4c7315e43f">&#9670;&nbsp;</a></span>cast()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;typename NewScalarType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">internal::cast_return_type&lt;Derived,<a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt;NewScalarType&gt; &gt;::type <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::cast </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><code>*this</code> with scalar type casted to <em>NewScalarType</em> </dd></dl>
<p>Note that if <em>NewScalarType</em> is equal to the current scalar type of <code>*this</code> then this function smartly returns a const reference to <code>*this</code>. </p>

</div>
</div>
<a id="ae61294790c0cc308d3f69690a657672c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae61294790c0cc308d3f69690a657672c">&#9670;&nbsp;</a></span>coeffs() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">internal::traits&lt;Derived&gt;::Coefficients&amp; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::coeffs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a vector expression of the coefficients (x,y,z,w) </dd></dl>

</div>
</div>
<a id="a193e79f616335a0067e3e784c7cf85fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a193e79f616335a0067e3e784c7cf85fa">&#9670;&nbsp;</a></span>coeffs() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const internal::traits&lt;Derived&gt;::Coefficients&amp; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::coeffs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a read-only vector expression of the coefficients (x,y,z,w) </dd></dl>

</div>
</div>
<a id="a5e63b775d0a93161ce6137ec0a17f6b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e63b775d0a93161ce6137ec0a17f6b0">&#9670;&nbsp;</a></span>conjugate()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt; typename internal::traits&lt; Derived &gt;::Scalar &gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::conjugate </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the conjugated quaternion</dd>
<dd>
the conjugate of the <code>*this</code> which is equal to the multiplicative inverse if the quaternion is normalized. The conjugate of a quaternion represents the opposite rotation.</dd></dl>
<dl class="section see"><dt>See also</dt><dd>Quaternion2::inverse() </dd></dl>

</div>
</div>
<a id="aa2d22c5b321c9539dd625ca415422236"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2d22c5b321c9539dd625ca415422236">&#9670;&nbsp;</a></span>dot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;class OtherDerived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Scalar <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::dot </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the dot product of <code>*this</code> and <em>other</em> Geometrically speaking, the dot product of two unit quaternions corresponds to the cosine of half the angle between the two rotations. </dd></dl>
<dl class="section see"><dt>See also</dt><dd>angularDistance() </dd></dl>

</div>
</div>
<a id="a6f31a6f98016f186515b3277f4757962"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f31a6f98016f186515b3277f4757962">&#9670;&nbsp;</a></span>Identity()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt;Scalar&gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::Identity </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a quaternion representing an identity rotation </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1MatrixBase.html#a98bb9a0f705c6dfde85b0bfff31bf88f">MatrixBase::Identity()</a> </dd></dl>

</div>
</div>
<a id="ab12ee41b3b06adc3062217a795a6a9f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab12ee41b3b06adc3062217a795a6a9f5">&#9670;&nbsp;</a></span>inverse()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt; typename internal::traits&lt; Derived &gt;::Scalar &gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::inverse</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the quaternion describing the inverse rotation</dd>
<dd>
the multiplicative inverse of <code>*this</code> Note that in most cases, i.e., if you simply want the opposite rotation, and/or the quaternion is normalized, then it is enough to use the conjugate.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1QuaternionBase.html#a5e63b775d0a93161ce6137ec0a17f6b0">QuaternionBase::conjugate()</a> </dd></dl>

</div>
</div>
<a id="a64bc41c96a9e99567e0f8409f8f0f680"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64bc41c96a9e99567e0f8409f8f0f680">&#9670;&nbsp;</a></span>isApprox()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;class OtherDerived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::isApprox </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>prec</em> = <code><a class="el" href="structEigen_1_1NumTraits.html">NumTraits</a>&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <code>*this</code> is approximately equal to <em>other</em>, within the precision determined by <em>prec</em>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1DenseBase.html#ae8443357b808cd393be1b51974213f9c">MatrixBase::isApprox()</a> </dd></dl>

</div>
</div>
<a id="aad4b1faef1eabdc7fdd4d305e9881149"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad4b1faef1eabdc7fdd4d305e9881149">&#9670;&nbsp;</a></span>norm()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Scalar <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::norm </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the norm of the quaternion's coefficients </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1QuaternionBase.html#a09730db4ef0b546f5cf29f6b180b3c87">QuaternionBase::squaredNorm()</a>, <a class="el" href="classEigen_1_1MatrixBase.html#a196c4ec3c8ffdf5bda45d0f617154975">MatrixBase::norm()</a> </dd></dl>

</div>
</div>
<a id="a7a487a8a129b46be562f42044102c1f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a487a8a129b46be562f42044102c1f8">&#9670;&nbsp;</a></span>normalize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::normalize </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Normalizes the quaternion <code>*this</code> </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1QuaternionBase.html#ade799f18b7ec19c02ddae3a4921fa8a0">normalized()</a>, <a class="el" href="classEigen_1_1MatrixBase.html#ad16303c47ba36f7a41ea264cb26bceb6">MatrixBase::normalize()</a> </dd></dl>

</div>
</div>
<a id="ade799f18b7ec19c02ddae3a4921fa8a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade799f18b7ec19c02ddae3a4921fa8a0">&#9670;&nbsp;</a></span>normalized()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt;Scalar&gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::normalized </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a normalized copy of <code>*this</code> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1QuaternionBase.html#a7a487a8a129b46be562f42044102c1f8">normalize()</a>, <a class="el" href="classEigen_1_1MatrixBase.html#a5cf2fd4c57e59604fd4116158fd34308">MatrixBase::normalized()</a> </dd></dl>

</div>
</div>
<a id="a530edf22f03853cd07ba829ea0d505dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a530edf22f03853cd07ba829ea0d505dc">&#9670;&nbsp;</a></span>operator!=()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;class OtherDerived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true if at least one pair of coefficients of <code>*this</code> and <em>other</em> are not exactly equal to each other. </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>When using floating point scalar values you probably should rather use a fuzzy comparison such as <a class="el" href="classEigen_1_1QuaternionBase.html#a64bc41c96a9e99567e0f8409f8f0f680">isApprox()</a> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1QuaternionBase.html#a64bc41c96a9e99567e0f8409f8f0f680">isApprox()</a>, operator== </dd></dl>

</div>
</div>
<a id="afdf1dc395c1cff6716ec9b80fd15b414"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afdf1dc395c1cff6716ec9b80fd15b414">&#9670;&nbsp;</a></span>operator*()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;class OtherDerived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt;typename internal::traits&lt;Derived&gt;::Scalar&gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the concatenation of two rotations as a quaternion-quaternion product </dd></dl>

</div>
</div>
<a id="afd8ee6b6420fbdd22fab7cd016212441"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd8ee6b6420fbdd22fab7cd016212441">&#9670;&nbsp;</a></span>operator*=()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;class OtherDerived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Derived &amp; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::operator*= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd>operator*(Quaternion) </dd></dl>

</div>
</div>
<a id="aa7c114c6e62a37d4fc53b6e82ed78eac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7c114c6e62a37d4fc53b6e82ed78eac">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Derived &amp; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html#aed266c63b10a4028304901d9c8614199">AngleAxisType</a> &amp;&#160;</td>
          <td class="paramname"><em>aa</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set <code>*this</code> from an angle-axis <em>aa</em> and returns a reference to <code>*this</code> </p>

</div>
</div>
<a id="a20a6702c9da3fc2950178d920d0aaf84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20a6702c9da3fc2950178d920d0aaf84">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;class MatrixDerived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Derived&amp; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; MatrixDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>xpr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set <code>*this</code> from the expression <em>xpr:</em> </p><ul>
<li>if <em>xpr</em> is a 4x1 vector, then <em>xpr</em> is assumed to be a quaternion</li>
<li>if <em>xpr</em> is a 3x3 matrix, then <em>xpr</em> is assumed to be rotation matrix and <em>xpr</em> is converted to a quaternion </li>
</ul>

</div>
</div>
<a id="ad206c9014409c06970884dbfc00e6c3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad206c9014409c06970884dbfc00e6c3c">&#9670;&nbsp;</a></span>operator==()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;class OtherDerived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true if each coefficients of <code>*this</code> and <em>other</em> are all exactly equal. </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>When using floating point scalar values you probably should rather use a fuzzy comparison such as <a class="el" href="classEigen_1_1QuaternionBase.html#a64bc41c96a9e99567e0f8409f8f0f680">isApprox()</a> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1QuaternionBase.html#a64bc41c96a9e99567e0f8409f8f0f680">isApprox()</a>, operator!= </dd></dl>

</div>
</div>
<a id="a7ae84bfbcc9f3f19f10294496a836bee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ae84bfbcc9f3f19f10294496a836bee">&#9670;&nbsp;</a></span>setFromTwoVectors()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;typename Derived1 , typename Derived2 &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Derived &amp; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::setFromTwoVectors </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; Derived1 &gt; &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; Derived2 &gt; &amp;&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the quaternion which transform <em>a</em> into <em>b</em> through a rotation</dd></dl>
<p>Sets <code>*this</code> to be a quaternion representing a rotation between the two arbitrary vectors <em>a</em> and <em>b</em>. In other words, the built rotation represent a rotation sending the line of direction <em>a</em> to the line of direction <em>b</em>, both lines passing through the origin.</p>
<dl class="section return"><dt>Returns</dt><dd>a reference to <code>*this</code>.</dd></dl>
<p>Note that the two input vectors do <b>not</b> have to be normalized, and do not need to have the same norm. </p>

</div>
</div>
<a id="a4695b0f6eebfb217ae2fbd579ceda24a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4695b0f6eebfb217ae2fbd579ceda24a">&#9670;&nbsp;</a></span>setIdentity()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&amp; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::setIdentity </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1QuaternionBase.html#a6f31a6f98016f186515b3277f4757962">QuaternionBase::Identity()</a>, <a class="el" href="classEigen_1_1MatrixBase.html#a18e969adfdf2db4ac44c47fbdc854683">MatrixBase::setIdentity()</a> </dd></dl>

</div>
</div>
<a id="ac840bde67d22f2deca330561c65d144e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac840bde67d22f2deca330561c65d144e">&#9670;&nbsp;</a></span>slerp()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<div class="memtemplate">
template&lt;class OtherDerived &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Quaternion.html">Quaternion</a>&lt;typename internal::traits&lt;Derived&gt;::Scalar&gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::slerp </td>
          <td>(</td>
          <td class="paramtype">const Scalar &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; OtherDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the spherical linear interpolation between the two quaternions <code>*this</code> and <em>other</em> at the parameter <em>t</em> in [0;1].</dd></dl>
<p>This represents an interpolation for a constant motion between <code>*this</code> and <em>other</em>, see also <a href="http://en.wikipedia.org/wiki/Slerp">http://en.wikipedia.org/wiki/Slerp</a>. </p>

</div>
</div>
<a id="a09730db4ef0b546f5cf29f6b180b3c87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09730db4ef0b546f5cf29f6b180b3c87">&#9670;&nbsp;</a></span>squaredNorm()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Scalar <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::squaredNorm </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the squared norm of the quaternion's coefficients </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1QuaternionBase.html#aad4b1faef1eabdc7fdd4d305e9881149">QuaternionBase::norm()</a>, <a class="el" href="classEigen_1_1MatrixBase.html#ac8da566526419f9742a6c471bbd87e0a">MatrixBase::squaredNorm()</a> </dd></dl>

</div>
</div>
<a id="a8cf07ab9875baba2eecdd62ff93bfc3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cf07ab9875baba2eecdd62ff93bfc3f">&#9670;&nbsp;</a></span>toRotationMatrix()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a>&lt; Derived &gt;::<a class="el" href="classEigen_1_1QuaternionBase.html#ac3972e6cb0f56cccbe9e3946a7e494f8">Matrix3</a> <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::toRotationMatrix </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>an equivalent 3x3 rotation matrix</dd></dl>
<p>Convert the quaternion to a 3x3 rotation matrix. The quaternion is required to be normalized, otherwise the result is undefined. </p>

</div>
</div>
<a id="a91f93bde88f52796cfcd92c3594f39e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91f93bde88f52796cfcd92c3594f39e5">&#9670;&nbsp;</a></span>vec() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1VectorBlock.html">VectorBlock</a>&lt;Coefficients,3&gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::vec </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a vector expression of the imaginary part (x,y,z) </dd></dl>

</div>
</div>
<a id="ada8bdb403471df23511bdc0f227962ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada8bdb403471df23511bdc0f227962ea">&#9670;&nbsp;</a></span>vec() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classEigen_1_1VectorBlock.html">VectorBlock</a>&lt;const Coefficients,3&gt; <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::vec </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a read-only vector expression of the imaginary part (x,y,z) </dd></dl>

</div>
</div>
<a id="ad884cf20a0b0b92bb63ab3fe9d6d6b7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad884cf20a0b0b92bb63ab3fe9d6d6b7f">&#9670;&nbsp;</a></span>w() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">NonConstCoeffReturnType <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::w </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a reference to the <code>w</code> coefficient (if Derived is a non-const lvalue) </dd></dl>

</div>
</div>
<a id="ab5eae91bedac0afaab0074cec5e535bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5eae91bedac0afaab0074cec5e535bc">&#9670;&nbsp;</a></span>w() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">CoeffReturnType <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::w </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the <code>w</code> coefficient </dd></dl>

</div>
</div>
<a id="a8b05bac2a1c099b341396f725e85f3b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b05bac2a1c099b341396f725e85f3b1">&#9670;&nbsp;</a></span>x() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">NonConstCoeffReturnType <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::x </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a reference to the <code>x</code> coefficient (if Derived is a non-const lvalue) </dd></dl>

</div>
</div>
<a id="afdd8e260d5de861a6136cb9e6ceaa4b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afdd8e260d5de861a6136cb9e6ceaa4b4">&#9670;&nbsp;</a></span>x() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">CoeffReturnType <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::x </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the <code>x</code> coefficient </dd></dl>

</div>
</div>
<a id="a6005245a72520df258d30af6b5448595"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6005245a72520df258d30af6b5448595">&#9670;&nbsp;</a></span>y() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">NonConstCoeffReturnType <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::y </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a reference to the <code>y</code> coefficient (if Derived is a non-const lvalue) </dd></dl>

</div>
</div>
<a id="aad37efca5d9fde3f4cb03a208f38d74f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad37efca5d9fde3f4cb03a208f38d74f">&#9670;&nbsp;</a></span>y() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">CoeffReturnType <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::y </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the <code>y</code> coefficient </dd></dl>

</div>
</div>
<a id="a9afed6a7fa4fcdfbe599d7b5b207fc1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9afed6a7fa4fcdfbe599d7b5b207fc1b">&#9670;&nbsp;</a></span>z() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">NonConstCoeffReturnType <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::z </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a reference to the <code>z</code> coefficient (if Derived is a non-const lvalue) </dd></dl>

</div>
</div>
<a id="a8389b65a61aa3fc76d3ba4bd4a63e529"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8389b65a61aa3fc76d3ba4bd4a63e529">&#9670;&nbsp;</a></span>z() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">CoeffReturnType <a class="el" href="classEigen_1_1QuaternionBase.html">Eigen::QuaternionBase</a>&lt; Derived &gt;::z </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the <code>z</code> coefficient </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="Quaternion_8h_source.html">Quaternion.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceEigen.html">Eigen</a></li><li class="navelem"><a class="el" href="classEigen_1_1QuaternionBase.html">QuaternionBase</a></li>
    <li class="footer">Generated on Thu Apr 21 2022 13:07:56 for Eigen by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
